The Internet is becoming a primary method for distributing media files and other information to end users. It is currently possible to download music, video, games, and other multi-media information to computers, cell phones, and virtually any network capable device.
Streaming of data files or “streaming media” refers to technology that delivers sequential content at a rate sufficient to present the media to a user at the originally anticipated playback speed without significant interruption. Streamed data may be stored in memory until the data is played back and then subsequently deleted after a defined time period has passed. In most streaming systems, the user is able to start viewing the requested content without waiting for the entire media file to completely download. However, the audio/video quality that can be received for a streaming presentation is largely constrained by the available bandwidth of the network connection.
Streaming offers the advantage of immediate access to the content but tends to sacrifice quality in order to maintain playback frame speed within the constraints of the available bandwidth. Network failures or congestion also impact streaming content. Streaming may be used to deliver content on demand from previously recorded broadcasts or content from live broadcasts.
At least three basic challenges exist with regard to data streaming over a network that has a varying amount of data loss (e.g., the Internet). The first challenge is reliability. Many streaming solutions use a TCP connection or “virtual circuit” for transmitting data. A TCP connection provides a guaranteed delivery mechanism so that data sent from one endpoint will be delivered to the destination, even if portions are lost and retransmitted. When a network adapter detects delays or losses in a TCP connection, the adapter “backs off” from transmission attempts for a moment and then gradually resumes the original transmission pace. This behavior is an attempt to alleviate the perceived congestion.
The second challenge to data transport is maintaining sufficient throughput. Throughput refers to how much of the user's available bandwidth is used for delivery of the content stream. When a TCP connection is suffering reliability problems, then a decrease in bandwidth utilization can result. Competition among clients for a fixed amount of available bandwidth may also decrease the throughput each client receives.
The third challenge is latency. Latency is a measure of the time interval between when a client's request is issued and the response data begins to arrive at the client. This metric is affected by the network connection's reliability and efficiency and the processing time required by the origin server to prepare the response.